﻿using Newtonsoft.Json;
using ThresholdAssistant.Enums;
using ProtoBuf;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;

namespace ThresholdAssistant.DataContract.Models
{
    /// <summary>
    /// 机器人基础信息
    /// </summary>
    [Serializable]
    public class RobotBaseInfoModel
    {
        /// <summary>
        /// 启用状态
        /// </summary>
        [JsonProperty("enabled"), JsonPropertyName("enabled")]
        public bool Enabled { get; set; }

        /// <summary>
        /// 机器人类型
        /// 10：平台号
        /// 20：托管号
        /// 30：扫码号
        /// </summary>
        [JsonProperty("type"), JsonPropertyName("type")]
        public RobotTypeEnum Type { get; set; }

        /// <summary>
        /// 机器人状态
        /// 10:正常
        /// 20：出库
        /// 30：退回
        /// 40：找回
        /// 50：禁止登录
        /// 60：迁移
        /// </summary>
        [JsonProperty("status"), JsonPropertyName("status")]
        public RobotStatusEnum Status { get; set; }

        /// <summary>
        /// 封号状态
        /// 10：未封号
        /// 20：疑似封号
        /// 30：封号
        /// </summary>
        [JsonProperty("seal_status"), JsonPropertyName("seal_status")]
        public RobotSealStatusEnum SealStatus { get; set; }

        /// <summary>
        /// 协议类型
        /// 1：IPAD协议
        /// 2：IPHONE协议
        /// 3：Android模拟器
        /// 4：Android协议
        /// </summary>
        [JsonProperty("protocol_type"), JsonPropertyName("protocol_type")]
        public RobotProtocolType ProtocolType { get; set; }

        /// <summary>
        /// 微信别名
        /// </summary>
        [JsonProperty("wx_alias"), JsonPropertyName("wx_alias")]
        public string WxAlias { get; set; }

        /// <summary>
        /// 微信账号
        /// </summary>
        [JsonProperty("wx_account"), JsonPropertyName("wx_account")]
        public string WxAccount { get; set; }

        /// <summary>
        /// 微信昵称
        /// </summary>
        [JsonProperty("nick_name"), JsonPropertyName("nick_name")]
        public string NickName { get; set; }

        /// <summary>
        /// 微信昵称
        /// </summary>
        [JsonProperty("base64_nick_name"), JsonPropertyName("nick_name")]
        public string Base64NickName { get; set; }

        /// <summary>
        /// 性别
        /// 0：未知
        /// 1：男
        /// 2：女
        /// </summary>
        [JsonProperty("sex"), JsonPropertyName("sex")]
        public SexEnum Sex { get; set; }

        /// <summary>
        /// 微信头像地址
        /// </summary>
        [JsonProperty("headimg_url"), JsonPropertyName("headimg_url")]
        public string HeadImgUrl { get; set; }

        /// <summary>
        /// 微信大版本号（格式：8.0.1）
        /// </summary>
        [JsonProperty("weixin_version"), JsonPropertyName("weixin_version")]
        public string WeixinVersion { get; set; }

        /// <summary>
        /// 微信小版本（格式：52）
        /// </summary>
        [JsonProperty("wx_small_version"), JsonPropertyName("wx_small_version")]
        public string WxSmallVersion { get; set; }
    }
}